xen.git
16 years agoAMD IOMMU: Clean up hardware initialization functions to make them
Keir Fraser [Mon, 6 Jul 2009 10:56:17 +0000 (11:56 +0100)]
AMD IOMMU: Clean up hardware initialization functions to make them
more friendly to iommu suspend and resume operations.

Signed-off-by: Wei Wang <wei.wang2@amd.com>
16 years ago32on64: increase size of compat argument translation area to 2 pages.
Keir Fraser [Mon, 6 Jul 2009 10:55:17 +0000 (11:55 +0100)]
32on64: increase size of compat argument translation area to 2 pages.

The existing single page is not quite large enough to translate a
XENMEM_exchange hypercall with order=3D9. Since Linux uses
MAX_CONTIG_ORDER of 9 this seems like a reasonable upper bound to
support.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
16 years agox86: PERCPU_SHIFT can be reduced to 12 now compat_arg_xlat_area is not
Keir Fraser [Mon, 6 Jul 2009 10:55:01 +0000 (11:55 +0100)]
x86: PERCPU_SHIFT can be reduced to 12 now compat_arg_xlat_area is not
directly a per-cpu object.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agoAvoid compat_arg_xlat to be a large per-CPU object
Keir Fraser [Mon, 6 Jul 2009 10:51:19 +0000 (11:51 +0100)]
Avoid compat_arg_xlat to be a large per-CPU object

Signed-off-by: Jan Beulich <jbeulich@novell.com>
16 years agox86 shadow: disable fast np path in OOS.
Keir Fraser [Mon, 6 Jul 2009 10:50:30 +0000 (11:50 +0100)]
x86 shadow: disable fast np path in OOS.

Signed off by: Gianluca Guida <gianluca.guida@eu.citrix.com>

16 years agox86 shadow: Fix lock-less race between resync and fast path.
Keir Fraser [Mon, 6 Jul 2009 10:49:56 +0000 (11:49 +0100)]
x86 shadow: Fix lock-less race between resync and fast path.

Signed-off-by: Gianluca Guida <gianluca.guida@eu.citrix.com>
16 years agoxend: allow pv_ops kernel driver pci-stub to hide devices for assignment
Keir Fraser [Mon, 6 Jul 2009 10:48:44 +0000 (11:48 +0100)]
xend: allow pv_ops kernel driver pci-stub to hide devices for assignment

pciback is used by VT-d to hide device for assigment. But in pv-ops
dom0, pciback is not supported yet. Fortunately, pci-stub module is
used to hide device in Linux for KVM VT-d device assignment and it's
included in pv-ops dom0. So can use pci-stub to hide devices for
assignment.

Device must be hidden before assignment. Control panel has checks if
devices can be assigned or not, and can list assignable devices via
reading devices owned by pciback. This patch changes the checks, and
also list assignable devices which are owned by pci-stub. Use pci-stub
to hide devices, and use this patch to pass checkes in control panel,
device assignemnt with VT-d works on Xen with pv-ops dom0.

Signed-off-by: Weidong Han <weidong.han@intel.com>
16 years agoblktap2: fix save/restore/migration
Keir Fraser [Mon, 6 Jul 2009 10:47:34 +0000 (11:47 +0100)]
blktap2: fix save/restore/migration

blktap2 devices use a regular 'phy' vbd blkback backend, causing
Blktap2Controller to trample the devices' parameters. This causes
problems with save/restore and managed domains, among other
things. This patch modifies Blktap2Controller to store both the vbd
and tap2 parameters in xenstore, and stops it from trampling the
device's config on device creation.

 * store blktap2 parameters in xenstore
 * restore blktap2 device config to original state once the underlying
 * vbd
   device is created (this fixes managed domains)
 * use blktap2 parameters rather than vbd parameters when building
 * blktap2
   device configurations
 * remove blktap2 specific code from XendConfig

Signed-off-by: Ryan O'Connor <rjo@cs.ubc.ca>
16 years agoblktap2: seperate blktap1/blktap2 disk types
Keir Fraser [Mon, 6 Jul 2009 10:47:02 +0000 (11:47 +0100)]
blktap2: seperate blktap1/blktap2 disk types

 * seperate blktap1/blktap2 disk types
 * use blktap1 when driver is not in explicit list of blktap2 drivers,
 * rather than current check against list of blktap1 only drivers
 * remove 'tapdisk' disk type (it is not a tapdisk disk type) and fix
 * tapdisk disk type check in XenConfig

Signed-off-by: Ryan O'Connor <rjo@cs.ubc.ca>
16 years agox86: Process only pending timers in acpi idle handler, not all
Keir Fraser [Mon, 6 Jul 2009 10:46:22 +0000 (11:46 +0100)]
x86: Process only pending timers in acpi idle handler, not all
softirqs. This fixes a bug where bailing into SCHEDULE_SOFTIRQ may not
actually return.

From: Ke Yu <ke.yu@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agolibfsimage: Support for zfs version 16.
Keir Fraser [Mon, 6 Jul 2009 10:42:05 +0000 (11:42 +0100)]
libfsimage: Support for zfs version 16.

Remove version checks to support boot of ZFS root filesystem version
16.

Signed-off-by: Susan Kamm-Worrell <susan.kamm-worrell@sun.com>
16 years agoFix c/s 19886: Must free pages after synchronously scrubbing them
Keir Fraser [Fri, 3 Jul 2009 07:54:51 +0000 (08:54 +0100)]
Fix c/s 19886: Must free pages after synchronously scrubbing them
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agotools: Always check for __linux__ not __Linux__
Keir Fraser [Thu, 2 Jul 2009 20:45:30 +0000 (21:45 +0100)]
tools: Always check for __linux__ not __Linux__
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agoRemove page-scrub lists and async scrubbing.
Keir Fraser [Thu, 2 Jul 2009 15:45:31 +0000 (16:45 +0100)]
Remove page-scrub lists and async scrubbing.

The original user for this was domain destruction. Now that this is
preemptible all the way back up to dom0 userspace, asynchrony is
better iontroduced at that level, if at all, imo.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agokexec: switch to a known good/static GDT before kexec
Keir Fraser [Thu, 2 Jul 2009 15:16:15 +0000 (16:16 +0100)]
kexec: switch to a known good/static GDT before kexec

kexec has been failing (at least on 32on64, didn't try others) since
18771:8e18dd41c6c7 "x86: reduce GDT switching". Ensure that we are
using a known good GDT before attempting to switch to compatability
mode.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
16 years agogtraceview: compile fixes for NetBSD.
Keir Fraser [Thu, 2 Jul 2009 10:36:17 +0000 (11:36 +0100)]
gtraceview: compile fixes for NetBSD.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
16 years agoxend: Remove disused constants
Keir Fraser [Thu, 2 Jul 2009 10:35:30 +0000 (11:35 +0100)]
xend: Remove disused constants

This patch removes disused constants from XendConstants.py.

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
16 years agoxend: fix an undefined name error: mac may be referenced before definition.
Keir Fraser [Thu, 2 Jul 2009 10:34:48 +0000 (11:34 +0100)]
xend: fix an undefined name error: mac may be referenced before definition.

Signed-off-by: Zhigang Wang <zhigang.x.wang@oracle.com>
16 years agolibxc: Fix bugs in xc_exchange_page: pfn_type indexed by gpfn.
Keir Fraser [Thu, 2 Jul 2009 10:33:43 +0000 (11:33 +0100)]
libxc: Fix bugs in xc_exchange_page: pfn_type indexed by gpfn.

Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
16 years agoxend: Restore uname of blktap for managed domains
Keir Fraser [Thu, 2 Jul 2009 10:32:49 +0000 (11:32 +0100)]
xend: Restore uname of blktap for managed domains

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
16 years agox86 hvm: Remove assertion that PIC IRQs are delivered only to VCPU0.
Keir Fraser [Thu, 2 Jul 2009 10:31:58 +0000 (11:31 +0100)]
x86 hvm: Remove assertion that PIC IRQs are delivered only to VCPU0.

It's no longer true, if the guest reprograms IOAPIC pin0 for example.

Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
16 years agobuikd: Fix the detection of udev with udevadm version < 128
Keir Fraser [Thu, 2 Jul 2009 10:31:00 +0000 (11:31 +0100)]
buikd: Fix the detection of udev with udevadm version < 128

Signed-off-by: Marc-A. Dahlhaus <mad@wol.de>
16 years agox86 hvm: Allow delivery of legacy 8259 interrupts to VCPUs != 0.
Keir Fraser [Wed, 1 Jul 2009 19:22:29 +0000 (20:22 +0100)]
x86 hvm: Allow delivery of legacy 8259 interrupts to VCPUs != 0.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agox86 hvm: Fix #UD interception.
Keir Fraser [Wed, 1 Jul 2009 13:58:31 +0000 (14:58 +0100)]
x86 hvm: Fix #UD interception.
 * Interception should be standard part of HVM_TRAP_MASK
 * Failed intercept should quietly forward #UD to the guest

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agoRemove redundant semicolons
Keir Fraser [Wed, 1 Jul 2009 09:54:25 +0000 (10:54 +0100)]
Remove redundant semicolons

Signed-off-by: Rikiya Ayukawa <ayukawa.rikiya@jp.fujitsu.com>
16 years agoblktap2: add blktap2 device class and device controller
Keir Fraser [Wed, 1 Jul 2009 09:53:15 +0000 (10:53 +0100)]
blktap2: add blktap2 device class and device controller

blktap2 devices must be handled differently than blktap2
devices. blktap2 devices require a sysfs write to close the underlying
device, as well as extra sysfs writes when the domU is
paused/unpaused. The differences between blktap1 and blktap2 are great
enough to warrant the creation of a new device class, 'tap2', and
device controller for blktap2 devices.

  * add a new device controller (Blktap2Controller) and device class
    (tap2) for blktap2 devices
  * move blktap2 specific code from DevController to Blktap2Controller
  * if possible, check xenstore to determine block device class
  * use vmpath (/vm/<uuid>/) when releasing devices
  * modify linux hotplug cleanup script to handle blktap2 device
    removal

Signed-off-by: Ryan O'Connor <rjo@cs.ubc.ca>
16 years agoUpdate QEMU_TAG to b471f03d51cde3976b6d52179ca2a86d8906a587
Keir Fraser [Tue, 30 Jun 2009 15:00:57 +0000 (16:00 +0100)]
Update QEMU_TAG to b471f03d51cde3976b6d52179ca2a86d8906a587

16 years agoVT-d: Remove the dprintk() in alloc_pgtable_maddr()
Keir Fraser [Tue, 30 Jun 2009 15:00:29 +0000 (16:00 +0100)]
VT-d: Remove the dprintk() in alloc_pgtable_maddr()

The trivial message is printed too many when xen boots and when we
create hvm guests with devices assigned.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
16 years agox86 hvm mce: Support HVM Guest virtual MCA handling.
Keir Fraser [Tue, 30 Jun 2009 14:40:39 +0000 (15:40 +0100)]
x86 hvm mce: Support HVM Guest virtual MCA handling.

When MCE# happens, if the error has been contained/recovered by XEN
and it impacts one guest Domain(DOM0/HVM Guest/PV Guest), we will
inject the corresponding vMCE# into the impacted Domain. Guest OS will
go on its own recovery job if it has MCA handler.

Signed-off-by: Liping Ke <liping.ke@intel.com>
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
16 years agoxend: get rid of hardcoded path in xend config file
Keir Fraser [Tue, 30 Jun 2009 14:37:14 +0000 (15:37 +0100)]
xend: get rid of hardcoded path in xend config file

* Change default settings to relative pathes.
* Make xend to prepend install directory if entries have no absolute
* path

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
16 years agox86 svm: Fix svm_update_guest_efer() after c/s 19856.
Keir Fraser [Mon, 29 Jun 2009 14:50:32 +0000 (15:50 +0100)]
x86 svm: Fix svm_update_guest_efer() after c/s 19856.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agox86 Cx tracing: adds gtraceview & gtracestat utilities
Keir Fraser [Mon, 29 Jun 2009 10:03:24 +0000 (11:03 +0100)]
x86 Cx tracing: adds gtraceview & gtracestat utilities

Signed-off-by: Lu Guanqun <guanqun.lu@intel.com>
16 years agox86 Cx tracing: export the Cx exit reason (pending interrupt during Cx)
Keir Fraser [Mon, 29 Jun 2009 10:01:50 +0000 (11:01 +0100)]
x86 Cx tracing: export the Cx exit reason (pending interrupt during Cx)

Signed-off-by: Lu Guanqun <guanqun.lu@intel.com>
16 years agox86 Cx tracing: export expected/predicted Cx to xentrace
Keir Fraser [Mon, 29 Jun 2009 10:00:56 +0000 (11:00 +0100)]
x86 Cx tracing: export expected/predicted Cx to xentrace

Signed-off-by: Lu Guanqun <guanqun.lu@intel.com>
16 years agox86 tboot: Fix c/s 19577
Keir Fraser [Mon, 29 Jun 2009 09:58:56 +0000 (10:58 +0100)]
x86 tboot: Fix c/s 19577

Signed-off-by: Shane Wang <shane.wang@intel.com>
16 years agoMerge with ia64 tree
Keir Fraser [Mon, 29 Jun 2009 09:51:35 +0000 (10:51 +0100)]
Merge with ia64 tree

16 years ago[IA64] replace MAX_VCPUS with d->max_vcpus where necessary.
Isaku Yamahata [Mon, 29 Jun 2009 02:26:05 +0000 (11:26 +0900)]
[IA64] replace MAX_VCPUS with d->max_vcpus where necessary.

don't use MAX_VCPUS, and use vcpu::max_vcpus.
The changeset of 2f9e1348aa98 introduced max_vcpus to allow more vcpus
per guest. This patch is ia64 counter part.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
16 years ago[IA64] plumb tmem hypercall entry point on ia64.
Isaku Yamahata [Mon, 29 Jun 2009 02:23:53 +0000 (11:23 +0900)]
[IA64] plumb tmem hypercall entry point on ia64.

add do_tmem_op() to ia64_hypercall_table to support tmem.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
16 years ago[IA64] remove a warning
Isaku Yamahata [Mon, 29 Jun 2009 02:23:31 +0000 (11:23 +0900)]
[IA64] remove a warning

This patch removes the following warning.
> unwind.c:40:1: warning: "write_trylock" redefined
> In file included from xen/include/xen/sched.h:7,
>                  from unwind.c:33:
> xen/include/xen/spinlock.h:115:1: warning: this is the location of the previous definition

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
16 years agofs-backend: fix default export and filename checks
Keir Fraser [Sat, 27 Jun 2009 09:47:38 +0000 (10:47 +0100)]
fs-backend: fix default export and filename checks

This patch changes fs-backend to use /var/lib/xen as default export
and check all the file names and paths given by the frontend against the
export path, so that the frontend can only operate under the export
directory.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
16 years agotmem: extra stats
Keir Fraser [Sat, 27 Jun 2009 09:40:11 +0000 (10:40 +0100)]
tmem: extra stats

This patch collects a few additional valuable per-domain
performance stats.

Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
16 years agominios: fix free_fbfront
Keir Fraser [Sat, 27 Jun 2009 09:39:10 +0000 (10:39 +0100)]
minios: fix free_fbfront

When a stubdom is destroyed, fbfront tries to unbind the evtchn
twice.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
16 years agodocs: Add network_setup.txt file explaining bridge setup.
Keir Fraser [Sat, 27 Jun 2009 09:37:51 +0000 (10:37 +0100)]
docs: Add network_setup.txt file explaining bridge setup.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
16 years agox86 svm: Make 32bit legacy guests boot again
Keir Fraser [Sat, 27 Jun 2009 09:33:33 +0000 (10:33 +0100)]
x86 svm: Make 32bit legacy guests boot again

Attached patch fixes a bug introduced in c/s 19648.

32bit legacy guests have the sysenter/sysexit instructions available.
Therefore, we have to disable intercepts for the sysenter MSRs or the
guest stucks in an infinite loop of #GPs, otherwise.

For guests in 64bit mode and 32bit compat mode, sysenter/sysexit
instructions aren't available. The sysenter MSRs have to be
intercepted to make the instruction emulation working.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agoUpdate QEMU_TAG for d67e46f6860bfbd8991b7691efc1f67b7bc413bc
Keir Fraser [Sat, 27 Jun 2009 09:02:52 +0000 (10:02 +0100)]
Update QEMU_TAG for d67e46f6860bfbd8991b7691efc1f67b7bc413bc

16 years agoxend: pass-through: Implement least-mapping of virtual functions
Keir Fraser [Sat, 27 Jun 2009 09:01:20 +0000 (10:01 +0100)]
xend: pass-through: Implement least-mapping of virtual functions

This is an alternative to identity mapping virtual functions.

It works by assigning the numerically lowest virtual function that is
available.

* The order of assignment is thus dependent on the order that physical
  functions are specified.

  e.g.
  config         physical     virtual
  01.00.0,2  ->  01:00.0  ->  00:07.0
             ->  01:00.2  ->  00:07.1

  is different to

  config         physical     virtual
  01.00.2,0  ->  01:00.2  ->  00:07.0
             ->  01:00.0  ->  00:07.1

* Physical function 0 need not be present

  e.g.
  config         physical     virtual
  01.00.1,2  ->  01:00.1  ->  00:07.0
             ->  01:00.2  ->  00:07.1

* Functions from the same physical multi-function device
  may be exported as multiple multi-function and single-function
  devices

  e.g.
  01.00.0,2  ->  01:00.0  ->  00:07.0
             ->  01:00.2  ->  00:07.1
  and
  01.00.1,3  ->  01:00.1  ->  00:08.1
             ->  01:00.3  ->  00:08.1
  and
  01.00.5    ->  01:00.5  ->  00:09.0

Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoxend: pass-through: rename vslot to vdevfn and vslots to vdevfns
Keir Fraser [Sat, 27 Jun 2009 09:00:24 +0000 (10:00 +0100)]
xend: pass-through: rename vslot to vdevfn and vslots to vdevfns

This is a noisy patch that makes not functional changes.
It renames vslot to vdevfn and vslots to vdevfns.

Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoxend: pass-through: Parse command line for multi-function hot-plug and unplug
Keir Fraser [Sat, 27 Jun 2009 08:56:15 +0000 (09:56 +0100)]
xend: pass-through: Parse command line for multi-function hot-plug and unplug

Hook things up to allow multi-function pass-through.

This includes making sure that request is valid.
In the case of pci-detach:

* All the functions requested must be attached to the same virtual
  slot * and;
* A request must include the functions attached to a virtual slot

Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoxend: pass-through: Add key to pci device dictionary
Keir Fraser [Sat, 27 Jun 2009 08:55:42 +0000 (09:55 +0100)]
xend: pass-through: Add key to pci device dictionary

This will be used to identify the functions belonging to
a multi-function device.

Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoxend: pass-through: Add pci_dict_bin_to_str()
Keir Fraser [Sat, 27 Jun 2009 08:54:54 +0000 (09:54 +0100)]
xend: pass-through: Add pci_dict_bin_to_str()

Break out the device list gathering code from xm_pci_list()
so that it can be re-used by subsequent changes.

Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoxend: pass-through: Only tell qemu-xen to unplug function 0
Keir Fraser [Sat, 27 Jun 2009 08:54:29 +0000 (09:54 +0100)]
xend: pass-through: Only tell qemu-xen to unplug function 0

When unplugging a function, all functions in the same vslot must be
unplugged, and function 0 must be one of the functions present when a
vslot is hot-plugged. Telling qemu-dm to unplug function 0 also tells
it to unplug all other functions in the same vslot.

Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoxend: pass-through: Allow multi-function device specifications to be parsed
Keir Fraser [Sat, 27 Jun 2009 08:53:56 +0000 (09:53 +0100)]
xend: pass-through: Allow multi-function device specifications to be parsed

The general format is as follows:

  Now: SEQ:BUS:DEV.FUNC[@VSLOT][,OPT...]
  New: SEQ:BUS:DEV.FUNC0-FUNCN[@VSLOT][,OPT...]
       SEQ:BUS:DEV.FUNC0,FUNCM,FUNCN[@VSLOT][,OPT...]
       SEQ:BUS:DEV.*[@VSLOT][,OPT...]

  In the case of unplug the VSLOT and OPT must be omitted.

  Xm expands this notation notation out and passes
  more conventional parameters to qemu-xen.

  E.g:
       0000:00:01.00-03 becomes:
         0000:00:01.00
         0000:00:01.01
         0000:00:01.02
         0000:00:01.03

       0000:00:01.00,03,05,07 becomes:
         0000:00:01.00
         0000:00:01.03
         0000:00:01.05
         0000:00:01.07

       For a device that has functions 0, 1, 2, 3, 5 and 7,
       0000:00:01.* becomes:
         0000:00:01.00
         0000:00:01.01
         0000:00:01.02
         0000:00:01.03
         0000:00:01.05
         0000:00:01.07

Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Cc: Akio Takebe <takebe_akio@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agohvmloader: pass-through: multi-function PCI hot-plug
Keir Fraser [Sat, 27 Jun 2009 08:53:19 +0000 (09:53 +0100)]
hvmloader: pass-through: multi-function PCI hot-plug

This registers information to allow guests to recognise non-zero
functions when hot-plugged.

Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoxend: pass-through: use devfn instead of slots as the unit for pass-through
Keir Fraser [Sat, 27 Jun 2009 08:51:37 +0000 (09:51 +0100)]
xend: pass-through: use devfn instead of slots as the unit for pass-through

Instead of suppling a slot number to qemu-xen, supply a devfn.

This and subsequent other changes will allow xend to ask
for more than one function to be inserted into a single slot -
by specifying which function of the slot should be used.

This is a minimal patch for this change. A subsequent
patch that has a lot of noise to rename slot to devfn
is intended to follow.

Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoUpdate QEMU_TAG for f2e0a24d00b2f0c591719bab088fbe3654955066
Keir Fraser [Thu, 25 Jun 2009 17:31:10 +0000 (18:31 +0100)]
Update QEMU_TAG for f2e0a24d00b2f0c591719bab088fbe3654955066

16 years agop2m hap: Fix dirty vram tracking function
Keir Fraser [Thu, 25 Jun 2009 17:28:59 +0000 (18:28 +0100)]
p2m hap: Fix dirty vram tracking function

This patch fixes an incorrect mode conversion when disable vram
dirty tracking.

Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Wei Huang <wei.huang2@amd.com>
16 years agominios: add few missing constants in limits.h
Keir Fraser [Thu, 25 Jun 2009 13:30:00 +0000 (14:30 +0100)]
minios: add few missing constants in limits.h

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
16 years agox86 hvm: Make sure port 0x80 in hvm_io_table[] is set correctly
Keir Fraser [Thu, 25 Jun 2009 12:51:40 +0000 (13:51 +0100)]
x86 hvm: Make sure port 0x80 in hvm_io_table[] is set correctly
regardless of execution order of hvm_enable() and check_port80().

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agotools: fix inverted logic check
Keir Fraser [Thu, 25 Jun 2009 12:15:32 +0000 (13:15 +0100)]
tools: fix inverted logic check

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
16 years agostubdom: use XENFIRMWAREDIR
Keir Fraser [Thu, 25 Jun 2009 12:14:37 +0000 (13:14 +0100)]
stubdom: use XENFIRMWAREDIR

Attached patch installs ioemu-stubdom into XENFIRMWAREDIR
analogous to what we do with hvmloader.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
16 years agoxend: create /var/lock/subsys at startup
Keir Fraser [Thu, 25 Jun 2009 12:14:03 +0000 (13:14 +0100)]
xend: create /var/lock/subsys at startup

Ubuntu puts /var/lock on tmpfs, so we should create /var/lock at
startup, rather than at installation time.

Signed-off-by: Jun Koi <junkoi2004@gmail.com>
16 years agox86 hvm: Fix printf format specifier
Keir Fraser [Thu, 25 Jun 2009 12:12:32 +0000 (13:12 +0100)]
x86 hvm: Fix printf format specifier

Signed-off-by: Jun Koi <junkoi2004@gmail.com>
16 years agoVT-d: remove debug prints and turn on qinval read/write drains
Keir Fraser [Thu, 25 Jun 2009 12:06:44 +0000 (13:06 +0100)]
VT-d: remove debug prints and turn on qinval read/write drains

This cleanup patch removes debug prints and turn on read and write
drains for VT-d queue invalidation if HW supports them.

Signed-off-by: Allen Kay <allen.m.kay@intel.com>
16 years agotools: add SHAREDIR to buildmakevars2file
Keir Fraser [Thu, 25 Jun 2009 12:05:10 +0000 (13:05 +0100)]
tools: add SHAREDIR to buildmakevars2file

c/s 19818 dropped SHAREDIR from xen/util/path.py, which broke the "xm
new" command. This patch adds SHAREDIR back to the new
buildmakevars2file-closure function.

Signed-off-by: Ryan O'Connor <rjo@cs.ubc.ca>
16 years agoFix buildsystem to detect udev > version 124
Keir Fraser [Thu, 25 Jun 2009 12:02:37 +0000 (13:02 +0100)]
Fix buildsystem to detect udev > version 124

udev removed the udevinfo symlink from versions higher than 123 and
xen's build-system could not detect if udev is in place and has the
required version.

Signed-off-by: Marc-A. Dahlhaus <mad@wol.de>
16 years agotools: fix x11 check
Keir Fraser [Thu, 25 Jun 2009 11:59:46 +0000 (12:59 +0100)]
tools: fix x11 check

X.org is installed in /usr/X11R7.
Attached patch covers this in the x11 check.
Xen has no direct X11 dependency
(it's inherited from SDL and SDL is optional for qemu-dm)
so warn but don't fail if no X11 is installed.
Fixes build problem on distributions which build their packages (*BSD
and Gentoo).

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
16 years agoblktap2: A final few NetBSD fixes
Keir Fraser [Wed, 24 Jun 2009 14:24:53 +0000 (15:24 +0100)]
blktap2: A final few NetBSD fixes

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
16 years agoblktap2: Further netbsd build fixes.
Keir Fraser [Wed, 24 Jun 2009 13:03:20 +0000 (14:03 +0100)]
blktap2: Further netbsd build fixes.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agotools: remove hard coded paths in example config files
Keir Fraser [Wed, 24 Jun 2009 10:17:11 +0000 (11:17 +0100)]
tools: remove hard coded paths in example config files

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
16 years agoblktap2: Fix a & vs && typo
Keir Fraser [Wed, 24 Jun 2009 10:16:42 +0000 (11:16 +0100)]
blktap2: Fix a & vs && typo

Signed-off-by: Jun Koi <junkoi2004@gmail.com>
16 years agox86 mca: Fix typo of MCA recovery flags
Keir Fraser [Wed, 24 Jun 2009 10:16:08 +0000 (11:16 +0100)]
x86 mca: Fix typo of MCA recovery flags

The following patch fixes typo of MCA recovery flags.
It should be '<<' instead of '<'.

Signed-off-by: Kazuhiro Suzuki <kaz@jp.fujitsu.com>
16 years agoVT-d: don't disable VT-d engine in suspend for security purpose
Keir Fraser [Wed, 24 Jun 2009 10:15:31 +0000 (11:15 +0100)]
VT-d: don't disable VT-d engine in suspend for security purpose

force_iommu option is used to force enabling and using IOMMU for
security purpose. So when force_iommu is set, it shouldn't disable
VT-d engines in suspend.

Signed-off-by: Weidong Han <weidong.han@intel.com>
16 years agoxend: Fix vbd/tapdisk device destruction
Keir Fraser [Wed, 24 Jun 2009 10:14:32 +0000 (11:14 +0100)]
xend: Fix vbd/tapdisk device destruction

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
16 years agoblktap2: Fix some printf format specifiers (PRIu64).
Keir Fraser [Wed, 24 Jun 2009 10:11:58 +0000 (11:11 +0100)]
blktap2: Fix some printf format specifiers (PRIu64).

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agoScaling guest's TSC when the target machine's frequency is different
Keir Fraser [Wed, 24 Jun 2009 10:05:22 +0000 (11:05 +0100)]
Scaling guest's TSC when the target machine's frequency is different
with its requirement.

Using trap&emulate for guest's each rdtsc instruction first, maybe it
can be optimized later.

Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
16 years agoMove muldiv64 out and make it as a public function.
Keir Fraser [Wed, 24 Jun 2009 09:57:00 +0000 (10:57 +0100)]
Move muldiv64 out and make it as a public function.

muldiv64 is used to caculate u64*u32/u32, and we
will use it for TSC scaling.

Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agosave/restore : Save guest's preferred TSC frequency in image
Keir Fraser [Wed, 24 Jun 2009 09:48:21 +0000 (10:48 +0100)]
save/restore : Save guest's preferred TSC frequency in image

For save/restore or live migration between two different frequency
platforms, guest's preferred TSC frequency is required to caculate
guest's TSC after resotre, so save it in the image header.

Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
16 years agox86 shadow: Fix a few SHOPT_OUT_OF_SYNC ifdefs.
Keir Fraser [Wed, 24 Jun 2009 09:47:07 +0000 (10:47 +0100)]
x86 shadow: Fix a few SHOPT_OUT_OF_SYNC ifdefs.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agoUpdate hgignore file
Keir Fraser [Tue, 23 Jun 2009 16:32:07 +0000 (17:32 +0100)]
Update hgignore file

16 years agoxend: Fix python syntax error
Keir Fraser [Tue, 23 Jun 2009 16:27:01 +0000 (17:27 +0100)]
xend: Fix python syntax error

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
16 years agotools python: remove unused auxbin functions
Keir Fraser [Tue, 23 Jun 2009 16:26:28 +0000 (17:26 +0100)]
tools python: remove unused auxbin functions

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
16 years agoGet rid of hardcoded pathes for stubdom and hotplug scripts
Keir Fraser [Tue, 23 Jun 2009 16:25:51 +0000 (17:25 +0100)]
Get rid of hardcoded pathes for stubdom and hotplug scripts

- Have the buid system generate a file which exports the install paths
   for the hotplug scripts and stubdom / stubdom-dm
- Move file generation code from tools/python/Makefile into a gmake
   macro
  in Config.mk to avoid maintenance of three duplicates each with its
   own
  tweaks and bugs
- Export gmake variables into ioemu as shell variables
  for upcoming ioemu patches
- Do above as a gmake macro to avoid maintenance of several duplicates
- Adjust hotplug scripts to find the right xen binaries from the
  install directory
- Adjust stubdom-dm to use the install directories

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
16 years agoblktap2: portability fixes for NetBSD
Keir Fraser [Tue, 23 Jun 2009 16:24:14 +0000 (17:24 +0100)]
blktap2: portability fixes for NetBSD

- Use standard off_t and lseek() instead of non-portable off64_t and
  lseek64()
- Use uuid API as documented in DCE 1.1 RPC specification
- Add NetBSD implementation for blk_getimagesize() and
  blk_getsectorsize()
- Use blk_getimagesize() and blk_getsectorsize()
- Fix uuid header check

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agoxenconsoled: fix timestamp log
Keir Fraser [Tue, 23 Jun 2009 10:27:54 +0000 (11:27 +0100)]
xenconsoled: fix timestamp log

timestamp log is broken.
Also, xenconsoled might die with segfault.

Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
16 years agoVT-d: correct kill hvm_timer
Keir Fraser [Tue, 23 Jun 2009 10:26:22 +0000 (11:26 +0100)]
VT-d: correct kill hvm_timer

hvm_timer is created with the vector got from domain_irq_to_vector(),
accordingly it should use the same vector to kill the timer. The patch
corrects it in pci_clean_dpci_irqs().

Signed-off-by: Weidong Han <weidong.han@intel.com>
16 years agoxenconsoled: Fix rate-limit calculation overflow leading to console freezes.
Keir Fraser [Tue, 23 Jun 2009 10:25:38 +0000 (11:25 +0100)]
xenconsoled: Fix rate-limit calculation overflow leading to console freezes.

From: Eric Tessler <eric@3tera.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agotools: don't require hardcoded firmware path in guest config file
Keir Fraser [Tue, 23 Jun 2009 10:23:27 +0000 (11:23 +0100)]
tools: don't require hardcoded firmware path in guest config file

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
16 years agoFix network-bridge ifup problem when bridge has no IP address.
Keir Fraser [Tue, 23 Jun 2009 10:22:08 +0000 (11:22 +0100)]
Fix network-bridge ifup problem when bridge has no IP address.

When we want to setup a bridge without a ip address, function
do_ifup will not activate the bridge.

We should make the bridge active, then vif-bridge can work on the
bridge.

Signed-off-by: Zhigang Wang <zhigang.x.wang@oracle.com>
16 years agoxend: Fix tapdisk creation for managed domains
Keir Fraser [Tue, 23 Jun 2009 10:20:10 +0000 (11:20 +0100)]
xend: Fix tapdisk creation for managed domains

The first start of a managed domain succeeds.  But the second
start of the managed domain fails as follows.  The problem occurs
when tapdisks are given to the managed domain.  I think that the
problem occurs because the uname of tapdisks is overwritten with
"phy:/dev/xen/tadisk-2/tapdev*".

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
16 years agovtd: IO NUMA support
Keir Fraser [Tue, 23 Jun 2009 10:14:24 +0000 (11:14 +0100)]
vtd: IO NUMA support

This patch adds VT-d RHSA processing for IO NUMA support.  The basic
idea is to parse ACPI RHSA structure to obtain VT-d HW to proximity
domain mapping.  This mapping is then used when allocating pages for
Vt-d HW data structures.

Signed-off-by: Allen Kay <allen.m.kay@intel.com>
16 years agotools: consistently use $(PYTHON)
Keir Fraser [Tue, 23 Jun 2009 10:13:29 +0000 (11:13 +0100)]
tools: consistently use $(PYTHON)

Signed-off-by: Christoph Egger <Christoph. Egger@amd.com>
16 years agox86: Another assign_irq_vector() cleanup.
Keir Fraser [Tue, 23 Jun 2009 10:11:46 +0000 (11:11 +0100)]
x86: Another assign_irq_vector() cleanup.

Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
16 years agoOnly allow DOMCTL_max_vcpus to increase vcpus from zero.
Keir Fraser [Tue, 23 Jun 2009 10:10:29 +0000 (11:10 +0100)]
Only allow DOMCTL_max_vcpus to increase vcpus from zero.

Otherwise reallocation of the vcpus array is unsafe.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
16 years agoVT-d: fix MSI source-id of interrupt remapping
Keir Fraser [Fri, 19 Jun 2009 07:45:55 +0000 (08:45 +0100)]
VT-d: fix MSI source-id of interrupt remapping

This patch fixes an issue of MSI source-id. Currently MSI source-ids
are all set device bdf. It's incorrect for PCI (not PCIe) devices. The
patch set correct requester-ids of MSI to source-id. And also, wrap
functions to clean ioapic source-id.

Signed-off-by: Weidong Han <weidong.han@intel.com>
16 years agoVT-d: pci code cleanup
Keir Fraser [Fri, 19 Jun 2009 07:45:20 +0000 (08:45 +0100)]
VT-d: pci code cleanup

This patch moves the pci code from iommu.c to pci.c. Instead of setup
pci hierarchy in array bus2bridge in iommu_context_mapping, use
scan_pci_devices once to add all existed PCI devices in system to
alldevs_list and setup pci hierarchy in array bus2bridge. In addition,
implement find_upstream_bridge to find the upstream PCIe-to-PCI/PCIX
bridge or PCI legacy bridge for a PCI device, therefore it's cleanly
to handle context map/unmap for PCI device, even for source-id
setting.

Signed-off-by: Weidong Han <weidong.han@intel.com>
16 years agoxend: fix a regression in c/s 19791.
Keir Fraser [Fri, 19 Jun 2009 07:44:33 +0000 (08:44 +0100)]
xend: fix a regression in c/s 19791.

Using changeset 19791:c0d2838fc10f, I can't create an HVM.
xend.log shows:

  File "usr/lib64/python2.4/site-packages/xen/xend/image.py", line
  759, in configure
    store_dmargs.remove('-sdl')
ValueError: list.remove(x): x not in list

Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
16 years agox86: Fix legacy irq allocation issue
Keir Fraser [Fri, 19 Jun 2009 07:43:58 +0000 (08:43 +0100)]
x86: Fix legacy irq allocation issue

When try to assign vector for irq, we should not assign vector for
legacy irq, which has fixed mapped irq<->vector relationship.

Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
16 years agoxend: fix BlktapController's device creation
Keir Fraser [Fri, 19 Jun 2009 07:43:28 +0000 (08:43 +0100)]
xend: fix BlktapController's device creation

Reset BlktapController's device class back to 'tap' once the device
has been created. This fixes save/restore for VMs with blktap2 disks.

Signed-off-by: Ryan O'Connor <rjo@cs.ubc.ca>
Signed-off-by: Dutch Meyer <dmeyer@cs.ubc.ca>
16 years agoP2M: check whether hap mode is enabled before using 2mb pages
Keir Fraser [Fri, 19 Jun 2009 07:42:58 +0000 (08:42 +0100)]
P2M: check whether hap mode is enabled before using 2mb pages

This small patch checks whether hap mode is enabled when guest is
trying to allocate 2MB pages inside P2M. This prevents potential
errors when hap is disabled.

Cc: Chris Lalancette <clalance@redhat.com>
Cc: Sarathy, Bhavna <Bhavna.Sarathy@amd.com>
Signed-off-by: Wei Huang <wei.huang2@amd.com>
16 years agoIOMMU: Add two generic functions to vendor neutral interface
Keir Fraser [Fri, 19 Jun 2009 07:41:50 +0000 (08:41 +0100)]
IOMMU: Add two generic functions to vendor neutral interface

Add 2 generic functions into the vendor neutral iommu interface, The
reason is that from changeset 19732, there is only one global flag
"iommu_enabled" that controls iommu enablement for both vtd and amd
systems, so we need different code paths for vtd and amd iommu systems
if this flag has been turned on. Also, the early checking of
"iommu_enabled" in iommu_setup() is removed to prevent iommu
functionalities from been disabled on amd systems.

Signed-off-by: Wei Wang <wei.wang2@amd.com>